# Create your views here.
from django.http import *
from django.shortcuts import render_to_response
from django.template import *
from entrenadores.models import *
from django.contrib import messages
from django.forms.models import modelformset_factory
from grids import *
from core.models import *
from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    return render_to_response('entrenadores/index.html', {'user_logged_in':request.user.is_authenticated()},
        context_instance=RequestContext(request))

#################################################################

@login_required
def todos(request):
    return render_to_response('entrenadores/index.html', {'todos':True, 'user_logged_in':request.user.is_authenticated()},
        context_instance=RequestContext(request))

#################################################################

# Editar entrenadores
@login_required
def editarEntrenador(request, entrenador_id=None):
    
    entrenador = Entrenador.objects.get(id=entrenador_id) if entrenador_id != None else None
    url_foto = 'entrenadores/default.png'
    deportes = Deporte.objects.all()
    
    if entrenador != None:
        url_foto= entrenador.url_foto
    
    prefix = '../' if entrenador_id != None else ''
    if request.method == 'POST': # If the form has been submitted...
        # A form bound to the POST data
        form = FormularioEntrenadores(request.POST, request.FILES, instance = entrenador) if entrenador_id != None else FormularioEntrenadores(request.POST,request.FILES)
        
        if 'boton_cancelar' in request.POST:
            return HttpResponseRedirect(prefix + '..') # Redirect after POST
        
        if form.is_valid():
            entrenador = form.save(commit = False)
            if entrenador_id != None:
                entrenador.deportes.clear()
            lista_deportes_asociados = request.POST.getlist('deportes[]')
            #print "deportes asociados:", lista_deportes_asociados
            for b in lista_deportes_asociados:
                entrenador.deportes.add(Deporte.objects.get(pk=int(b)))
            
            #~ print "editar entrenador: ",entrenador.deportes.all()
            if 'file' in request.FILES:
                entrenador.set_foto(request.FILES['file'])
            else:
                entrenador.set_foto(url_nueva=url_foto)
            entrenador.save()
        
            if 'boton_guardar' in request.POST:
                messages.success(request, "Entrenador '%s' guardado exitosamente." % entrenador.nombres)
                return HttpResponseRedirect(prefix + '..') # Redirect after POST
            
            elif 'boton_guardar_y_otro' in request.POST:
                messages.success(request, "Entrenador '%s' guardado exitosamente." % entrenador.nombres)
                return HttpResponseRedirect(prefix + '../crear/') # Redirect after POST
            
            elif 'boton_guardar_y_editar' in request.POST:
                messages.success(request, "Entrenador '%s' guardado exitosamente." % entrenador.nombres)
                return HttpResponseRedirect(prefix + '../editar/'+str(entrenador.pk)+'/') # Redirect after POST
        
    else:
        form = FormularioEntrenadores(instance=entrenador) if entrenador_id != None else FormularioEntrenadores()# A form bound to the POST data

    return render_to_response('entrenadores/editar.html',
    {'form':form, 'url_foto':url_foto, 'entrenador':entrenador, 'deportes':deportes, 'user_logged_in':request.user.is_authenticated()},
    context_instance=RequestContext(request))
        
#################################################################
# Ver entrenadores
@login_required
def verEntrenador(request, entrenador_id=None):
    entrenador = Entrenador.objects.get(id=entrenador_id) if entrenador_id != None else None
    if entrenador==None:
        return HttpResponseRedirect('../../') # Redirect after POST
    
    url_foto = entrenador.url_foto
    if url_foto == '':
        url_foto= 'entrenadores/default.png'
    
    return render_to_response('entrenadores/ver.html',
    {'entrenador':entrenador,'url_foto':url_foto, 'user_logged_in':request.user.is_authenticated()},
    context_instance=RequestContext(request))

@login_required
def entrenadores_grid_handler(request):
    # handles pagination, sorting and searching
    grid = EntrenadoresGrid()
    return HttpResponse(grid.get_json(request), mimetype="application/json")

@login_required
def entrenadores_grid_config(request):
    # build a config suitable to pass to jqgrid constructor   
    grid = EntrenadoresGrid()
    return HttpResponse(grid.get_config(), mimetype="application/json")
    
@login_required
def entrenadores_activos_grid_handler(request):
    # handles pagination, sorting and searching
    grid = EntrenadoresActivosGrid()
    return HttpResponse(grid.get_json(request), mimetype="application/json")

@login_required
def entrenadores_activos_grid_config(request):
    # build a config suitable to pass to jqgrid constructor   
    grid = EntrenadoresActivosGrid()
    return HttpResponse(grid.get_config(), mimetype="application/json")
    
